package com.yuanchu.marketing.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import lombok.Data;

import java.io.Serializable;
import java.util.Map;

/**
 * 用户优惠券记录表
 * 
 * @author adan
 * @email 2028038953@gmail.com
 * @date 2023-12-19 20:57:23
 */
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
@Data
@TableName("yoshop_user_coupon")
public class YoshopUserCouponEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 主键ID
	 */
	@TableId
	private Integer userCouponId;
	/**
	 * 优惠券ID
	 */
	private Integer couponId;
	/**
	 * 优惠券名称
	 */
	private String name;
	/**
	 * 优惠券类型(10满减券 20折扣券)
	 */
	private Integer couponType;
	/**
	 * 满减券-减免金额
	 */
	private String reducePrice;
	/**
	 * 折扣券-折扣率(0-100)
	 */
	private Integer discount;
	/**
	 * 最低消费金额
	 */
	private String minPrice;
	/**
	 * 到期类型(10领取后生效 20固定时间)
	 */
	private Integer expireType;
	/**
	 * 领取后生效-有效天数
	 */
	private Integer expireDay;
	/**
	 * 有效期开始时间
	 */
	private String startTime;
	/**
	 * 有效期结束时间
	 */
	private String endTime;
	/**
	 * 适用范围(10全部商品 20指定商品)
	 */
	private Integer applyRange;
	/**
	 * 适用范围配置(json格式)
	 */
	private String applyRangeConfig;
	/**
	 * 是否过期(0未过期 1已过期)
	 */
	private Integer isExpire;
	/**
	 * 是否已使用(0未使用 1已使用)
	 */
	private Integer isUse;
	/**
	 * 用户ID
	 */
	private Integer userId;
	/**
	 * 商城ID
	 */
	private Integer storeId;
	/**
	 * 创建时间
	 */
	private String createTime;
	/**
	 * 更新时间
	 */
	private String updateTime;

	@TableField(exist = false)
	private Map<String, Object> state;

	@TableField(exist = false)
	private YoshopUserEntity user;
}
